#!/bin/env lua
-- talimat parser kodlaması

--kütüphane eklemeleri
local lip= require("LIP")
local lfs = require("lfs")
local util=require ("mps_helper")
local yaz=util.yaz
local _assert=util._assert
local has_value=util.has_value
local path_exists=util.path_exists
local shell=util.shell
local get_abspath=util.get_abspath
local get_basename=util.get_basename

-- dil tespiti / sonra mps-helper den çağrılabilir.
local _langenv=os.getenv("LANG")
if not _langenv then _langenv="tr_TR" end
local _langvar,_=_langenv:match("(.*)_(.*)")
local messages = require ("lang_".. _langvar)
--------------------------------------------------

local parser={}
local talimat_format="([%a%d-]+)#([^-]+)([%d]+)" -- talimat_isim@surum-devir : abc@1.2.3-1

-- parse edilmiş talimat nesnesi
local talimat={}

-- talimat dizini
local talimatd={}

function parser.isd()
	local isd = get_basename(talimatd)
	local isim,surum,devir=isd:match(talimat_format)
	if not (isim and surum and devir) then
		messages.talimat_name_format_not_valid:yaz(0)
	end
	talimat.isim=isim
	talimat.surum=surum
	talimat.devir=devir
end

-- girdi talimat-dizin verilir
-- çıktı olarak talimat nesnesi döndürülür.
function parser.get(talimatdizin)
	talimatd=get_abspath(talimatdizin)
	local talimatyol=talimatd..'/talimat'
	talimat = lip.load(talimatyol,{"derle","pakur","kaynak"})
	parser.isd()
	return talimat
end

return parser

-- talimat tablo(nesne) içeren
-- talimat.isim
-- talimat.surum
-- talimat.devir
-- talimat.paket.tanim
-- talimat.paket.url
-- talimat.paket.paketci
-- talimat.paket.grup
-- talimat.gerek.derleme
-- talimat.gerek.calisma
-- ve diğer talimat kısımları...
